namespace Core
{
	public abstract class BindableCommandFeature : Feature
	{
		private string _binding;

		protected BindableCommandFeature(string name, string binding, Ide ide, OutputPane outputPane)
            : base(name, ide, outputPane)
		{
			_binding = binding;
		}

		public string Binding
		{
			get { return _binding; }
			set { _binding = value; }
		}

		public virtual bool IsAvailable
		{
			get { return true; }
		}

		public virtual bool IsChecked
		{
			get { return false; }
		}

		public abstract void OnExecute();
	}
}